package model

import (
	"gorm.io/gorm"
	"time"
)

type Questions struct {
	Id             uint           `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	ExType         string         `gorm:"column:ex_type;type:varchar(255);not null;" json:"ex_type"`
	MajorOne       string         `gorm:"column:major_one;type:varchar(255);not null;" json:"major_one"`
	MajorTwo       string         `gorm:"column:major_two;type:varchar(255);not null;" json:"major_two"`
	Difficulty     uint           `gorm:"column:difficulty;type:tinyint(1);comment:1 低 2 中 3 高;not null;" json:"difficulty"` // 1 低 2 中 3 高
	Author         string         `gorm:"column:author;type:varchar(255);not null;" json:"author"`
	Founder        string         `gorm:"column:founder;type:varchar(255);comment:创建人;not null;" json:"founder"`  // 创建人
	FounderNum     int32          `gorm:"column:founder_num;type:int;comment:创建人工号;not null;" json:"founder_num"` // 创建人工号
	Cretime        string         `gorm:"column:cretime;type:varchar(255);not null;" json:"cretime"`
	Reviewer       string         `gorm:"column:reviewer;type:varchar(255);not null;" json:"reviewer"`
	ReviewerType   uint           `gorm:"column:reviewer_type;type:tinyint(1);comment:1已通过、2审核中、3未通过，4创建人为空;default:NULL;" json:"reviewer_type"` // 1已通过、2审核中、3未通过，4创建人为空
	ReviewerNumber string         `gorm:"column:reviewer_number;type:varchar(255);not null;" json:"reviewer_number"`
	ExName         string         `gorm:"column:ex_name;type:varchar(255);not null;" json:"ex_name"`
	Option         uint           `gorm:"column:option;type:tinyint;comment:1 a 2b 3c 4 d;default:NULL;" json:"option"` // 1 a 2b 3c 4 d
	Answer         uint           `gorm:"column:answer;type:tinyint;comment:1 a 2b 3c 4 d;default:NULL;" json:"answer"` // 1 a 2b 3c 4 d
	Analysis       string         `gorm:"column:analysis;type:varchar(255);comment:解析;default:NULL;" json:"analysis"`   // 解析
	Keysword       string         `gorm:"column:keysword;type:varchar(20);not null;" json:"keysword"`
	ViewingRange   uint8          `gorm:"column:viewing_range;type:tinyint UNSIGNED;comment:1 内部 2 开放;not null;default:1;" json:"viewing_range"` // 1 内部 2 开放
	EnableStatus   uint8          `gorm:"column:enable_status;type:tinyint UNSIGNED;comment:1 启用 2 禁用;not null;default:1;" json:"enable_status"` // 1 启用 2 禁用
	CreatedAt      time.Time      `gorm:"column:created_at;type:datetime(3);default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdateAt       time.Time      `gorm:"column:update_at;type:datetime(3);default:CURRENT_TIMESTAMP(3);" json:"update_at"`
	DeleteAt       gorm.DeletedAt `gorm:"column:delete_at;type:datetime(3);default:NULL;" json:"delete_at"`
}

func (q *Questions) TableName() string {
	return "questions"
}
